// 编写一个函数来查找字符串数组中的最长公共前缀。

// 如果不存在公共前缀，返回空字符串 ""。
/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    if (strs.length == 0) { return "" }
    // 注意对字符串进行排序，防止长字符串在短字符串之前比较不完的问题
    strs = strs.sort()
    let str = strs[0];
    let len = str.length;
    for (let i = 1; i < strs.length; i++) {
        for (let j = 0; j < strs[i].length; j++) {
            if (strs[i][j] != str[j]) {
                len = j;
                str = str.substr(0, j);
            }
        }
    }
    return str
};
// 不用排序的解法
var longestCommonPrefix = function(strs) {
    if (strs.length == 0)
        return "";
    let ans = strs[0];
    for (let i = 1; i < strs.length; i++) {
        let j = 0;
        for (; j < ans.length && j < strs[i].length; j++) {
            if (ans[j] != strs[i][j])
                break;
        }
        // 这里将切片放到外面，保证即使前面的字符串更长也可以进行切片而不是直接退出
        ans = ans.substr(0, j);
        if (ans === "")
            return ans;
    }
    return ans;
};